package com.mantru.iotpot.Tools;

import static androidx.core.content.ContextCompat.getSystemService;

import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.TextView;

import com.mantru.iotpot.R;

public class tools {
    public interface OnDialogButtonClickListener {
        void onConfirmClick();
        void onCancelClick();
    }
//
//    public static void load(final Activity activity, final Class<?> ActivityClass) {
//        new Thread(() -> {
//            try {
//                Thread.sleep(2000);
//            } catch (InterruptedException e) {
//                e.printStackTrace();
//            }
//            activity.runOnUiThread(() -> {
//                activity.startActivity(new Intent(activity, ActivityClass));
//                activity.finish();
//            });
//        }).start();
//    }

    public static void showCustomDialog(final Activity activity, String title1, String content1, final OnDialogButtonClickListener listener) {
        // 创建对话框
        Dialog dialog = new Dialog(activity);
        dialog.setContentView(R.layout.activity_title);
        // 设置对话框背景为半透明
        dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
        // 获取布局中的控件
        TextView title = dialog.findViewById(R.id.dialog_title);
        TextView content = dialog.findViewById(R.id.dialog_content);
        Button btnCancel = dialog.findViewById(R.id.btn_cancel);
        Button btnConfirm = dialog.findViewById(R.id.btn_confirm);
        // 设置标题和内容
        title.setText(title1);
        content.setText(content1);
        // 取消按钮点击事件
        btnCancel.setOnClickListener(v -> {
            if (listener != null) {
                listener.onCancelClick();
            }
            dialog.dismiss();
        });
        // 确认按钮点击事件
        btnConfirm.setOnClickListener(v -> {
            if (listener != null) {
                listener.onConfirmClick();
            }
            dialog.dismiss();
        });
        // 显示对话框
        dialog.show();
    }

    // 在按钮的点击事件中调用此方法
    public static void hideKeyboard(Activity activity) {
        // 方法1：通过当前焦点视图隐藏
        View focusedView = activity.getCurrentFocus();
        if (focusedView != null) {
            InputMethodManager imm = (InputMethodManager)
                    activity.getSystemService(Context.INPUT_METHOD_SERVICE);
            if (imm != null) {
                imm.hideSoftInputFromWindow(
                        focusedView.getWindowToken(),
                        0
                );
                focusedView.clearFocus();
            }
            return;
        }
//
//        // 方法2：当没有焦点视图时，通过根视图隐藏（备选方案）
//        View rootView = activity.getWindow().getDecorView().findViewById(android.R.id.content);
//        if (rootView != null) {
//            InputMethodManager imm = (InputMethodManager)
//                    activity.getSystemService(Context.INPUT_METHOD_SERVICE);
//            if (imm != null) {
//                imm.hideSoftInputFromWindow(
//                        rootView.getWindowToken(),
//                        0
//                );
//            }
//        }
    }

    /**
     * 通过指定视图隐藏键盘（推荐在Fragment中使用）
     * @param context 上下文
     * @param view 任意视图（通常使用根布局或EditText）
     */
    public static void hideKeyboardFromView(Context context, View view) {
        InputMethodManager imm = (InputMethodManager)
                context.getSystemService(Context.INPUT_METHOD_SERVICE);
        if (imm != null) {
            imm.hideSoftInputFromWindow(
                    view.getWindowToken(),
                    0
            );
            view.clearFocus();
        }
    }
}